﻿using System;
using System.Collections.Generic;
using GSQ.BusinessEntities;
using GSQ.DataAccess;

namespace GSQ.BusinessLogic
{
    public class NcfBL
    {
        public decimal Insert(NCF value)
        {
            if (value.IsValid())
            {
                new NcfDA().Insert(value);
                return value.ID;
            }
            else
                throw new ArgumentException("La entidad no esta valida");
        }

        public decimal Update(NCF newValue, NCF oldValue)
        {
            if (newValue.IsValid())
            {
                if (newValue.VALUE > newValue.HASTA) throw new Exception("Valor Máximo no puede ser menor que el Valor Actural.");
                new NcfDA().Update(newValue);
                return oldValue.ID;
            }
            else
                throw new ArgumentException("La entidad no esta valida");
        }

        public List<NCF> GetAll()
        {
            return new NcfDA().GetAll();
        }

        public NCF GetById(decimal id)
        {
            return new NcfDA().GetById(id);
        }

        public List<NCF> GetByIdCondicionTipo(decimal idCondicion, string tipo)
        {
            return new NcfDA().GetByIdCondicionTipo(idCondicion, tipo.Trim());
        }
    }
}
